﻿// ===============================================================================
// ISchemaProvider.cs
// EOS Framework
// ===============================================================================
// Copyright (c) EOS Development Group. All rights reserved.
// ===============================================================================

namespace EOS.Framework.Contracts.Schema
{
    /// <summary>
    /// Contract for Schema Provider. A Schema Provider is responsible for extracting schema information
    /// from the database.
    /// </summary>
    public interface ISchemaProvider
    {
        /// <summary>
        /// Extracts the schema from the database.
        /// </summary>
        /// <param name="forceNew">if set to <c>true</c> the provider will be forced to extract the schema again.</param>
        /// <returns>The extracted schema.</returns>
        DatabaseSchema ExtractSchema(bool forceNew);
    }
}
